Conventional radio systems broadcast a continuous content without requiring extensive user interaction. This traditional scheme is convenient in situations where the listener is sharing his or her attention with other tasks, such as driving an automobile. However, one of the disadvantages of these conventional radio systems is that only a limited number of the radio stations can legally transmit their broadcasts in a particular area (e.g., only 45 FM radio stations can transmit their broadcast in the New York City metropolitan area). There have been a number of proposed solutions to address this limitation. However, none of the proposed solutions effectively utilized the Internet to expand the number of radio broadcasts, as well as television broadcasts, to the wireless users who travel from one geographical area to another.
A streaming real-time multimedia content (which relates to entertainment, music and/or interactive game industries) can now be provided over the Internet. The streaming applications include IP telephony, broadcasting multimedia content and multi-party conferences, collaborations and multi-player games. However, at least one publication (i.e., the New York Times) asserted that such multimedia streaming applications will bring about the demise of the Internet because the streaming applications are far more demanding in terms of bandwidth, latency and reliability than the traditional data communication applications. Many of the existing streaming systems do not scale to large audiences, particularly for a transmission at high bit rates. They also do not provide a user flexibility, and are restricted to a utilization of either conferencing or broadcast modes.
Early attempts to provide the streaming applications to the clients over the Internet have been implement using a unicast scheme. An exemplary system illustrating the system which utilizes the conventional unicast architecture is shown in FIG. 1. Referring to FIG. 1, the source 100 (e.g., the audio and/or video content provider) is connected to a first router R1, which in turn is connected to second and third routers R2, R3. The second router R2 is connected to fourth and fifth routers R4, R5, while the third router R3 is connected to sixth and seventh routers R6, R7. The fourth router R4 is connected to two clients C0, C1, the fifth router R5 is connected to three clients C2, C3, C4, the sixth client R6 is connected to two clients C5, C6, and the seventh client R7 is connected to another three clients C7, C8, C9. The clients C0-C9 may be computers requesting the particular multimedia content (e.g., an audio and/or video content).
In operation, if each of the clients C0-C9 requests the same multimedia content, each of those requests is routed via their respective routers to the source 100. Particularly, the clients C0, C1 send such request to the fourth router R4 which routes the request two streams for the particular multimedia content, i.e., one stream for each of its requesting clients C0, C1. At the same time, the fifth, sixth and seventh routers R5, R6, R7 may receive the requests for the same multimedia content from its respective clients C2-C9, and these routers R5, R6, R7 route their streams, respectively, for such multimedia content upstream. The requests for two and three identical multimedia streams (i.e., a total of five streams) are sent to the second router R2 from the fourth and fifth routers R4, R5, respectively. The requests for the same three and two multimedia streams (i.e., also a total of five streams) are sent to the third router R3 from the sixth and seventh routers R6, R7, respectively. The second and third routers R2, R3 each route the request for five multimedia streams to the first router R1, which routes a request for 10 multimedia streams (i.e., 5 for the second router R2 and 5 for the third router R3) to the source 100.
Thus, the source 100 receives a request for 10 multimedia streams, and then transmits 10 multimedia streams to the first router R1, which then routes the requested 5 identical multimedia streams to the second router R2, and the same 5 multimedia streams to the third router R3. The second router R2 then routes two of these multimedia streams to the fourth router R4, and three to the fifth router R5. The fourth router R4 routes 1 stream to the client C0 and the other stream to the client C1. The fifth router R5 routes one of its received streams to the respective client, C2, C3, C4. Similar routing of the multimedia streams occurs for the third router R3 (and thus for the sixth and seventh routers, (R6, R7).
By utilizing the unicast scheme described above and shown in FIG. 1, there may be multiple copies of the same multimedia content being transmitted from the source down to the clients. Such transmission of multiple streams may cause a bottleneck in the network by wasting the Internet bandwidth, and would likely prevent the clients from receiving the multimedia content in an expeditious manner.
FIG. 2 shows an arrangement utilizing a conventional multicast communications scheme which addressed at least some of the above-mentioned drawbacks. For the sake of simplicity, the multicast arrangement in FIG. 2 is substantially similar to that shown in FIG. 1. Using the multicasting communications scheme illustrated in FIG. 2, if each of the clients C0-C9 requests the same multimedia content, the routers keep track of the particular client which made the request, and only sends one request for the multimedia stream upstream to the next router in the chain (or to the source 100). For example, the clients C0, C1 may send such request (e.g., a join request) to the fourth router R4, which stores an indication (e.g., a state) therein that at least one of clients C0, C1 sent the particular request. At the same time, the fifth, sixth and seventh routers R5, R6, R7 may receive the requests for the same multimedia content from its respective clients C2-C9, and each these routers R5, R6, R7 stores an indication therein regarding that at least one of their respective clients sent the request for multimedia stream. If the fourth router R4 (or the fifth router R5) already routed the multimedia streams to one of its clients (on the same subnet as the requesting client), it routes the multimedia streams to such requesting client. Otherwise each of the fourth and fifth routers R4, R5 sends a request to receive the multimedia stream that was requested by their respective clients C0-C4 to the second router R2. The second router R2 stores an indication that at least one of the fourth and fifth routers R4, R5 made the request. Each of the sixth and seventh routers R6, R7 also may send a request for the multimedia stream (i.e., that was requested by their respective clients C5-C9) to the third router R3. The third router R3 stores an indication which is similar to the one stored in the second router R2. Then, the second and third routers R2, R3 each send the request for the same multimedia stream to the first router R1, which stores an indication regarding which of the routers R2, R3 made the request. Since the first router R1 is directly connected (or connected in the same subnet) to the source 100, the first router R1 always receives the multimedia stream from the source 100.
In this manner, the first router R1 receives the request, duplicates the received multimedia stream (via multicast channels 500) and transmits 1 copy thereof to each of the second and third routers R2, R3 (if both made the request). The second router R2 then duplicates the received multimedia stream provided in the multicast channels 500, and sends one copy of the stream to each of the fourth and fifth router R4, R5. The fourth router R4, in turn, provides one copy of the received multimedia stream provided in the multicast channels 500 to the client C0 and the other copy to the client C1 (if both made the request). The fifth router R5 duplicates the received multimedia stream, and sends one copy of the received multimedia stream provided by the multicast channels 500 to each of the respective client C2, C3, C4 (if each of theses clients made the request). A similar transmission of the multimedia streams occurs for the third router R3 (and thus for the sixth and seventh routers R6, R7).
With this multicast scheme, the source 100 needs to only transmit one multimedia stream to the requesting router, which in turn duplicates the multimedia stream (if necessary) and transmits a single stream downstream to the routers and/or the clients requesting such stream. Indeed, each router (as well as the source 100) does not need to transmit more than one multimedia stream to the downstream routers. As such, the bandwidth of the system is utilized more efficiently.
In addition, by using the multicast scheme described above, it is also possible to avoid a transmission of a request for the multimedia stream (that has already been provided to other clients by a particular router) upstream, all the way up to the source 100. For example, another client C10 may be connected to the fourth router R5, and this new client C10 may request the multimedia stream from the fourth router R4 that has already been requested (and is provided to) the client C1. When the fourth router R4 receives this request from the new client C10, it checks whether the requested multimedia stream has already been provided to it. If not, this request is then passed to the second router R2. If the fourth router R4 determines that the requested multimedia stream is already provided by it to at least one of its clients (is in the present exemplary case to the client C1), the fourth router sends a copy of the requested multimedia stream to the new client C10 without sending additional requests for this multimedia stream to the second router R2, and ultimately to the server. Even though this multicast communications scheme provides an advantageous transmission of the multimedia streams from the servers to the clients, it was not effectively usable for wireless communication or in systems where the broadcast streams from different sources which can immediately be provided to the wired or wireless clients.
Previous attempts to provide next-generation radio and television systems have not been successful largely because these systems did not add significant benefits over the older and well known systems. Current versions of the Internet (or web) radio or television were not designed to utilize a large-scale multicast scheme, while also lacking the ability to support low-latency constraints and flexible programming (e.g., an automatic ad insertion during a program, an on-line monitoring of a particular channel, etc.). Furthermore, the conventional systems do not support a continuous streaming or conferencing, while the wireless client is moving, especially from one subnet to another.